/**
 首先要明确一个概念：
 对文件或其他目标频繁的读写操作，效率低，性能差
 使用缓冲流的好处是：能够更高效的读写信息，原理是将数据先缓冲起来，然后一起写入或者读取出来。
 BufferedInputStream:为另一个输入流添加一些功能，在创建BufferedInputStream时，会创建
 一个内部缓冲区数组，用于缓冲数据。
 BufferedOutputStream:通过设置这种输出流，应用程序就可以将各个字节写入底层输入流中，而不必
 针对每次字节写入调用底层系统。
 BufferedReader:从字符输入流中读取文本，缓冲各个字符，从而实现字符，数组和行的高效读取。
 BufferedWriter:将文本写入字符输入流，缓冲各个字符，从而提供单个字符，数组和字符串的高效写入。
 */

/*
package com.leo.第八章_文件与IO;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.InputStream;
public class U8_L6_缓冲流 {

	public static void main(String[] args) {
		run();
	}
	
	
	private static void run() {
		File f=new File("E:\\eclipse-workspace\\test\\RW\\buff.txt");
		if(!f.exists()) {
			try {
				f.createNewFile();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		IO(f);	
	}
 	private static void IO(File f) {		
		write(f);
		read(f);
	}
	//加了缓冲后面方便添加其他功能 例如过滤 等等
	private static void write(File f) {	
		String info="This is a 还是测试!";
		try (BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(f))){
			bos.write(info.getBytes()); 
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	//加了缓冲后面方便添加其他功能 例如过滤 等等
	private static void read(File f) {		
		byte[]bytes=new byte[1024];
		int len=-1;
		try (BufferedInputStream bis=new BufferedInputStream(new FileInputStream(f))){
			while((len=bis.read(bytes))!=-1) {
				System.out.println(new String(bytes,0,len));		
			}	
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
	}
}
*/
